<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // function fn(){
        //     return(10,20,30)
        // }
        // let[a,b,c]=fn();
        // console.log(a,b,c);
        // function fn(){
        //     return{
        //         name:"222",age:20,address:"333"
        //     }
        // }let res=fn()
        // let {name,age,address}=res
        // console.log(name,age,address);
        // let user = { name: '222', age: 33 };
        // console.log(`,wojiao${user.name},jinnian${user.age}`);
        // let a ={name:'zzz'};
        // let b ={age:20};
        // let ret = Object.assign({},a,b);
        // console.log(ret);
        // console.log(a,b);
        // {
        //     let list = new Set();
        //     list.add("a");
        //     list.add("b");
        //     console.log(list);
        // }
        // {
        //     let arr = ["a", "b", "c", "d", "a"];
        //     console.log(arr);
        //     let list = new Set(arr);
        //     console.log(list);
        // }
        // {
        //     let arr = ["a", "b", "c", "d"];
        //     let list = new Set(arr);
        //     console.log(list.has("a"));
        // }
        // console.log("keys()",list.keys());
        // for(let key of list.keys()){
        //     console.log("key:",key);
        // }
        // let map = new map();
        // console.log(map.size);
        // // 添加成员set(key value)
        // map.set("name", "111");
        // map.set("age", "20");
        // console.log(map);
        // // 获取成员 根据key得value get(key)返回value
        // console.log(map.get("name"));
        // // 删除成员 delete(key ),clear()
        // map.delete("age");
        // map.clear();
        // console.log(map);
        // promise.all(p1,p2,p3)将多个promise实例包装成一个新的promise
        // 场景：请求多张图片信息，希望等所有图片全部加载完毕后，在一起显示到页面中
        //     基本语法
        //     resolve 成功要执行的函数
        //     reject 失败要执行的函数
        //     let promise = new promise((resolve, reject) => {
        //         console.log("promise --- 承诺");
        //     })
        // yield  暂停标志
        // let tell = function *(){
        //     console.log("1");
        //     yield;
        // }
        // let it = tell();
        // it.next()
        // it.next()
        // it.next()
        // {
        //     yield 返回值
        //     let tell = function *(){
        //         console.log("1");
        //         yield;
        //     }
        // }
        // let obj ={
        //     name:'2222',
        //     age:30,
        //     address:'3333',
        // }
        // obj[symbol.interator] = function*(){
        //     yield obj.name;
        //     yield obj.age;
        //     yield obj.address;
        // }
        // for(let i of obj){
        //     console.log("i:",i);
        // }
        //  导出变量
        //  方法一:
        //  let name ="1111";
        //  let age = 20;
        //  let address = "sdfasda";
        //  export{name,age,address}
        // 方法二:
        // export let name = "1111";
        // export let age = 20;
        // export let address = "sdfasda";
        // export let obj = {

        // }
        // 导出函数
        // export function fn(){
        //     console.log("wewadasdwead");
        // }
        //         import 导入模块
        // import {name,age,address,obj,fn}from './let.html'
        // console.log ("import:",name,age,address,obj);
        // fn();
        // 取别名 as
        // 当导入的变量名与自身定义的名称冲突时,可以取别名
        // import {fn as fn1} from './let.html'
        // function fn(){
        //     console.log("我是import里面的fn函数");
        // }
        // fn();
        // fn1();
        // 模块整体加载
        // import *as obj from  './let.html'
        // console.log(obj);
        // 默认导入--匿名加载 没有{}
        // import myname from './let.html'
        // console.log(myname);
        // myname();
        // includes()判断
        // let arr =[10,20,30];
        // console.log(arr.includes(200));false
        // str.padstart(目标长度[,填充字符串])
        // let str = "abc";
        // let nstr1 = str.padstart(10);
        // console.log(nstr1);
        // 使用场景
        // 1.对数值补全指定位置
        //  000001
        //  000002
        //  000003
        //  100000
        //  console.log("111".padStart(6,"0"));000111
        //  2.提示字符串补全，日期
        //  console.log('12'.padStart(10,'YYYY-MM-DD'));YYYY-MM-12
        //  console.log('12.12'.padStart(10,'YYYY-MM-DD'));YYYY-12-12
        // 合并
        // oject.assign(目标对象,要合并的对象1..)
        // let bObj = { a: 1, b: 2 };
        // let cObj = { c: 3, b: 5 };
        // let all = Object.assign({}, bobj, cobj);
        // let all = { ...bObj, ...cObj };
        // console.log(all);
        // then(成功的回调，失败的回调)
        // catch(callback) 出现异常时执行caych的回调函数
        // finally（callback） 不管程序是否报错，都会执行的一段代码
        // let promise = new promise((resolve, reject) => {
        //     console.log("立即");
        //     reject("失败了")
        // })
        // promise.then(res => {
        //     console.log("成功回调:", res);
        //     throw new Error("错误了...")
        // }, err => {
        //     console.log("失败回调", err);
        // }
        // ).catch(err => {
        //     console.log("catch:", err);
        // }).finally(() => {
        //     console.log("finally");
        // })
        // 扁平化数组
        // console.log([1, 2, 3[4, 5, 6]].flat());[1,2,3,4,5,6]
        // let id = 100;
        // id = id || 99;
        // console.log(id);
        // id || (id = 99);
        // console.log(id);
        // let id = undefined;
        // id = id && 99;
        // console.log(id);
        // id && (id = 99);
        // console.log(id);
    </script>
</body>

</html>